package com.ruoyi.system.mapper;

import java.util.List;
import com.ruoyi.system.domain.BizPurchaseIn;
import com.ruoyi.system.domain.BizPurchaseInBarcode;

/**
 * 采购入库单Mapper接口
 * 
 * @author ruoyi
 * @date 2025-11-01
 */
public interface BizPurchaseInMapper 
{
    /**
     * 查询采购入库单
     * 
     * @param purchaseInId 采购入库单主键
     * @return 采购入库单
     */
    public BizPurchaseIn selectBizPurchaseInByPurchaseInId(Long purchaseInId);

    /**
     * 查询采购入库单列表
     * 
     * @param bizPurchaseIn 采购入库单
     * @return 采购入库单集合
     */
    public List<BizPurchaseIn> selectBizPurchaseInList(BizPurchaseIn bizPurchaseIn);

    /**
     * 新增采购入库单
     * 
     * @param bizPurchaseIn 采购入库单
     * @return 结果
     */
    public int insertBizPurchaseIn(BizPurchaseIn bizPurchaseIn);

    /**
     * 修改采购入库单
     * 
     * @param bizPurchaseIn 采购入库单
     * @return 结果
     */
    public int updateBizPurchaseIn(BizPurchaseIn bizPurchaseIn);

    /**
     * 删除采购入库单
     * 
     * @param purchaseInId 采购入库单主键
     * @return 结果
     */
    public int deleteBizPurchaseInByPurchaseInId(Long purchaseInId);

    /**
     * 批量删除采购入库单
     * 
     * @param purchaseInIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteBizPurchaseInByPurchaseInIds(Long[] purchaseInIds);

    /**
     * 批量删除采购入库箱码明细
     * 
     * @param purchaseInIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteBizPurchaseInBarcodeByPurchaseInIds(Long[] purchaseInIds);
    
    /**
     * 批量新增采购入库箱码明细
     * 
     * @param bizPurchaseInBarcodeList 采购入库箱码明细列表
     * @return 结果
     */
    public int batchBizPurchaseInBarcode(List<BizPurchaseInBarcode> bizPurchaseInBarcodeList);
    

    /**
     * 通过采购入库单主键删除采购入库箱码明细信息
     * 
     * @param purchaseInId 采购入库单ID
     * @return 结果
     */
    public int deleteBizPurchaseInBarcodeByPurchaseInId(Long purchaseInId);

    /**
     * 获取指定日期前缀的最大采购入库单编号（如 PI20241215xxx）
     * @param prefix 日期前缀
     * @return 最大采购入库单编号
     */
    public String selectMaxPurchaseInNoByDate(String prefix);
}
